package realQuestion.shenxin;

import java.util.*;

public class Main2 {


    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next();
        int length1 = s.length();
        String inputs=s.substring(1,length1-1);
        String[] split = inputs.split(",");
        int[] woods = new int[split.length];
        for (int i = 0; i < split.length; i++) {
            woods[i]=Integer.valueOf(split[i]);
        }
        int length=in.nextInt();
        Arrays.sort(woods);

        int min = min(woods, length);


//
//        int min=Integer.MAX_VALUE;
//        if (result.size()!=0){
//            for (int i = 0; i < result.size(); i++) {
//                min=Math.min(result.get(i).size(),min);
//            }
//        }



        System.out.println(min);


    }

//   static List<List<Integer>>  result=new ArrayList<>();
//   static   LinkedList<Integer> path=  new LinkedList<>();
//   static int sum=0;
//   static  void  find(int[] woods,int target,int start){
//      if (sum==target){
//          result.add(new ArrayList<>(path));
//          return;
//      }
//       for (int i = start; i < woods.length ; i++) {
//           sum+=woods[i];
//           path.add(woods[i]);
//           find(woods, target, i+1);
//           path.removeLast();
//           sum-=woods[i];
//
//       }
//
//  }

  static  int min(int[]  woods,int  length){
      int[] dp = new int[length + 1];
      Arrays.fill(dp,Integer.MAX_VALUE);
      for (int i = 1; i <=length ; i++) {

          for (int wood: woods
               ) {
              if (i-wood>=0&&dp[i-wood]!=Integer.MAX_VALUE){
                  dp[i]=Math.min(dp[i],dp[i-wood]+1);
              }

          }
      }

      return  dp[length]==  Integer.MAX_VALUE?-1:dp[length];
  }




}
